devisualization.image.interfaces

This module is a submodule of devisualization.image

Provides optional interfaces which declares an class based image as well as reusable concepts such as a swappable image implementation dependent upon a provided image implementation.

Members

Classes

ImageObject
class ImageObject(Impl)

Wraps a struct image storage type into a class

MyTestImage
class MyTestImage(Color)
Undocumented in source.

Functions

imageObject
auto imageObject(size_t width, size_t height, IAllocator allocator)
auto imageObject(size_t width, size_t height, shared(ISharedAllocator) allocator)

Constructs an object around an image storage type.

imageObject
auto imageObject(Impl* instance, IAllocator allocator)
auto imageObject(Impl* instance, shared(ISharedAllocator) allocator)

Constructs an object around an image storage type.

imageObjectFrom
auto imageObjectFrom(Image from, IAllocator allocator)
auto imageObjectFrom(Image from, shared(ISharedAllocator) allocator)

Constructs an object based upon an existing image.

rangeOf
auto rangeOf(SwappableImage!Color* from)

Constructs an input range over an image For every pixel get x + y and the color value

rangeOf
auto rangeOf(Image from, IAllocator allocator)

Constructs an input range over an image For every pixel get x + y and the color value

Interfaces

ImageStorage
interface ImageStorage(Color)

Interface that defines the root methods required for a class/struct to be an image storage type.
Similar in purpose as InputRange is to ranges.

ImageStorageOffset
interface ImageStorageOffset(Color)

Adds the ability to get a pixel based upon its offset.

Structs

PixelPoint
struct PixelPoint(Color)

A single pixel inside an image.

SwappableImage
struct SwappableImage(Color)

Wraps an image implementation up so that the exact implementation doesn't matter. As long as the color type is known it can be passed around freely. It does not allocate to perform its functions and can be safely used on the stack.

Meta

License

Copyright Devisualization (Richard Andrew Cattermole) 2014 - 2017. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)